<?php

class Coordina_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function aplicaciones($instrumento, $clase = null, $tipo = null) {
        if ($instrumento <= 3) {
            $sql = "select * from aplicainstrumento apli
                left JOIN aplicainstrumentodetalles apliDet ON apliDet.`aplicaInstId` = apli.`aplicaInstId`
                INNER JOIN agentes agen ON agen.`agenteId` = apli.`agenteId`
                INNER JOIN usuarios usr ON usr.`usuarioId` = apli.`usuarioId`
                INNER JOIN participantes par ON par.`participanteId` = usr.`participanteId`
                INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                inner join instrumentos inst on inst.`instrumentoId` = apli.`instrumentoId`
                WHERE apli.`instrumentoId` = '$instrumento' group by apli.aplicaInstId";
        }
        switch ($instrumento) {
            case 4 :
                $sql = "select *,count(grp.`aplicaInstId`) as total from aplicainstrumento apli
                LEFT JOIN aplicainstrumentodetalles apliDet ON apliDet.`aplicaInstId` = apli.`aplicaInstId`
                INNER JOIN usuarios usr ON usr.`usuarioId` = apli.`usuarioId`
                INNER JOIN participantes par ON par.`participanteId` = usr.`participanteId`
                INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                INNER JOIN instrumentos inst ON inst.`instrumentoId` = apli.`instrumentoId`
                INNER JOIN grupos_focales grp ON grp.`aplicaInstId` = apli.`aplicaInstId`
                WHERE apli.`instrumentoId` = '$instrumento' group by apli.aplicaInstId";
                break;
            case 5:
                if ($clase == "analisis") {
                    $sql = "select * from aplicainstrumento apli
                LEFT JOIN aplicainstrumentodetalles apliDet ON apliDet.`aplicaInstId` = apli.`aplicaInstId`
                INNER JOIN usuarios usr ON usr.`usuarioId` = apli.`usuarioId`
                INNER JOIN participantes par ON par.`participanteId` = usr.`participanteId`
                INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                INNER JOIN instrumentos inst ON inst.`instrumentoId` = apli.`instrumentoId`
                WHERE apli.`instrumentoId` = '$instrumento' group by apli.aplicaInstId ";
                } elseif ($clase == "listado") {
                    $sql = "SELECT *,count(rev.`participanteId`) as total
                        FROM revisionesdocumentales rev
                        INNER JOIN participantes par ON par.`participanteId` = rev.`participanteId`
                        INNER JOIN usuarios usr ON usr.`participanteId` = par.`participanteId`
                        INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                        INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                        GROUP BY usr.`participanteId`";
                }
                break;
            case 6:
                if ($clase == "analisis") {
                    $sql = "select * from aplicainstrumento apli
                LEFT JOIN aplicainstrumentodetalles apliDet ON apliDet.`aplicaInstId` = apli.`aplicaInstId`
                inner join programas prg on prg.`programaId` = apli.`programaId`
                INNER JOIN usuarios usr ON usr.`usuarioId` = apli.`usuarioId`
                INNER JOIN participantes par ON par.`participanteId` = usr.`participanteId`
                INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                INNER JOIN instrumentos inst ON inst.`instrumentoId` = apli.`instrumentoId`
                WHERE apli.`instrumentoId` = '$instrumento' group by apli.aplicaInstId ";
                } elseif ($clase == "listado") {
                    $sql = "SELECT *,count(rev.`participanteId`) as total
                        FROM listadoprogramas rev
                        INNER JOIN participantes par ON par.`participanteId` = rev.`participanteId`
                        INNER JOIN usuarios usr ON usr.`participanteId` = par.`participanteId`
                        INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                        INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                        GROUP BY usr.`participanteId`";
                }
                break;
            case 'T':
                $sql = "select * from aplicainstrumento apli
                INNER JOIN usuarios usr ON usr.`usuarioId` = apli.`usuarioId`
                inner join modalidades moda on moda.`modalidadId` = apli.`modalidadId`
                INNER JOIN participantes par ON par.`participanteId` = usr.`participanteId`
                INNER JOIN departamentos dep ON dep.`departamentoId` = usr.`departamentoId`
                INNER JOIN zonas zon ON zon.`zonaId` = dep.`zonaId`
                inner join instrumentos inst on inst.`instrumentoId` = apli.`instrumentoId`
                WHERE apli.`instrumentoId` >= 9 and apli.instrumentoId <= 18 group by apli.aplicaInstId order by zon.`zonaNombre`, dep.departamento,inst.instrumentoNumero,moda.modalidadId";
                break;
            case 'TCSV':
                $sql = "SELECT zonas.zonaId, zonas.zonaNombre, departamentos.departamentoId, departamentos.departamento, participantes.participanteNombres AS Consultor, aplicainstrumento.instrumentoId, instrumentos.instrumentoNombre, instrumentos.instrumentoNumero, modalidades.modalidadId, modalidades.modalidadNombre, aplicainstrumentodetalles.aplicaInstId, aplicainstrumentodetalles.aplicaInstDetId, aplicainstrumentodetalles.preguntaId, preguntas.preguntaFichasReporte AS pregunta_texto, preguntas.preguntaFichasCategoria AS preguntaCategoria, aplicainstrumentodetalles.aplicaInstDetRespText, instrumentos_1.instrumentoId AS InstrumentoRELACIONADO_id, instrumentos_1.instrumentoNumero AS InstrumentoRELACIONADO_Numero, instrumentos_1.instrumentoNombre AS instrumento_RELACIONADO_Nombre
                FROM (zonas
                INNER JOIN ((participantes
                INNER JOIN (usuarios
                INNER JOIN departamentos ON usuarios.departamentoId = departamentos.departamentoId) ON participantes.participanteId = usuarios.participanteId)
                INNER JOIN (preguntas
                INNER JOIN (instrumentos
                INNER JOIN ((aplicainstrumento
                LEFT JOIN modalidades ON aplicainstrumento.modalidadId = modalidades.modalidadId)
                INNER JOIN aplicainstrumentodetalles ON aplicainstrumento.aplicaInstId = aplicainstrumentodetalles.aplicaInstId) ON instrumentos.instrumentoId = aplicainstrumento.instrumentoId) ON preguntas.preguntaId = aplicainstrumentodetalles.preguntaId) ON usuarios.usuarioId = aplicainstrumento.usuarioId) ON zonas.zonaId = departamentos.zonaId)
                LEFT JOIN instrumentos AS instrumentos_1 ON preguntas.instrumentoId_rel = instrumentos_1.instrumentoId
                WHERE (((aplicainstrumento.instrumentoId)>8))
                ORDER BY zonas.zonaNombre, departamentos.departamento, participantes.participanteNombres, aplicainstrumento.instrumentoId, modalidades.modalidadId, aplicainstrumentodetalles.preguntaId";
                break;
            case 'formato1':
                $sql = "SELECT dep.departamento, p.participanteId, age.agenteNombre AS institucion, p.participanteNombres, p.participanteTipDoc, p.participanteDocumento, p.particiapnteEdad, p.participanteNivelEducativo, moda.modalidadNombre AS modalidad, p.participanteCargo, '' AS tiempo_experiencia,
                    mu.municipio, if(cuenta(p.participanteNombres, p.participanteDocumento, ai.municipioId, 2) > 0,'Si','No') AS entrevista
                    , if(cuenta(p.participanteNombres, p.participanteDocumento, ai.municipioId, 1) > 0,'Si','No') AS observacion, paus.participanteNombres AS consultor
                    FROM participantes p
                    JOIN aplicainstrumento ai ON p.participanteId=ai.participanteId
                    JOIN agentes age ON ai.agenteId=age.agenteId
                    JOIN municipios mu ON age.municipioId=mu.municipioId
                    JOIN usuarios us ON ai.usuarioId=us.usuarioId
                    JOIN departamentos dep ON us.departamentoId=dep.departamentoId
                    JOIN modalidades moda ON age.modalidadId=moda.modalidadId
                    JOIN participantes paus ON us.participanteId=paus.participanteId
                    GROUP BY dep.departamento, p.participanteId, age.agenteNombre, p.participanteNombres, p.participanteTipDoc, p.participanteDocumento, p.particiapnteEdad, p.participanteNivelEducativo, moda.modalidadNombre, p.participanteCargo,
                    mu.municipio, paus.participanteNombres order by dep.departamento,mu.municipio";
                break;
            case 'formato2':
                $sql = "SELECT dep.departamento, mu.municipio, p.participanteId, p.participanteNombres, CONCAT( age.agenteNombre, ' - ', age.direccion) AS lugar , moda.modalidadNombre AS modalidad,
                    trae_fecha(p.participanteNombres, p.participanteDocumento, ai.municipioId, 2) AS fecha_entrevista
                    , trae_fecha(p.participanteNombres, p.participanteDocumento, ai.municipioId, 1) AS fecha_observacion, paus.participanteNombres AS consultor
                    FROM participantes p
                    JOIN aplicainstrumento ai ON p.participanteId=ai.participanteId
                    JOIN agentes age ON ai.agenteId=age.agenteId
                    JOIN municipios mu ON age.municipioId=mu.municipioId
                    JOIN usuarios us ON ai.usuarioId=us.usuarioId
                    JOIN departamentos dep ON us.departamentoId=dep.departamentoId
                    JOIN modalidades moda ON age.modalidadId=moda.modalidadId
                    JOIN participantes paus ON us.participanteId=paus.participanteId
                    GROUP BY dep.departamento, p.participanteId, age.agenteNombre, p.participanteNombres, p.participanteTipDoc, p.participanteDocumento, p.particiapnteEdad, p.participanteNivelEducativo, moda.modalidadNombre, p.participanteCargo,
                    mu.municipio, paus.participanteNombres
                    ORDER BY 1,2";
                break;
            case 'formato3':
                $sql = "SELECT dep.departamento, mu.municipio, ai.direccion AS lugar, ai.aplicaInstFecha AS fecha, cuenta_participantes(ai.aplicaInstId) AS No_participantes,
                    p.participanteNombres, p.participanteCargo AS cargo, moda.modalidadNombre AS modalidad, '' AS espacio_educativo,p.participanteInstLabora as institu
                    FROM participantes p
                    JOIN grupos_focales gf ON p.participanteId=gf.participanteId
                    JOIN aplicainstrumento ai ON gf.aplicaInstId=ai.aplicaInstId
                    LEFT JOIN agentes age ON ai.agenteId=age.agenteId
                    LEFT JOIN modalidades moda ON age.modalidadId=moda.modalidadId
                    LEFT JOIN municipios mu ON ai.municipioId=mu.municipioId
                    LEFT JOIN usuarios us ON ai.usuarioId=us.usuarioId
                    LEFT JOIN departamentos dep ON us.departamentoId=dep.departamentoId
                    WHERE ai.aplicaInstId IN (SELECT DISTINCT aplicaInstId1 FROM aplicainstrumento WHERE aplicaInstId1 IS NOT NULL) and ai.instrumentoId = 3
                    ORDER BY ai.aplicaInstId";
                break;
            case 'formato4':
                $sql = "SELECT dep.departamento, ai.aplicaInstFecha AS fecha, cuenta_participantes(ai.aplicaInstId) AS No_participantes,
                    p.participanteNombres, p.participanteTipDoc AS tipodoc, p.participanteDocumento AS documento,
                     p.participanteCargo AS  cargo, ai.direccion as lugar,mun.municipio
                    FROM participantes p
                    JOIN grupos_focales gf ON p.participanteId=gf.participanteId
                    JOIN aplicainstrumento ai ON gf.aplicaInstId=ai.aplicaInstId
                    left join municipios mun on mun.municipioId = ai.municipioId
                    inner JOIN usuarios us ON ai.usuarioId=us.usuarioId
                    inner JOIN departamentos dep ON us.departamentoId=dep.departamentoId
                    WHERE ai.instrumentoId = 4
                    ORDER BY ai.aplicaInstId";
                break;
            case 'TIVALORES':
                $sql = "SELECT * from inst_01_p03";
                break;
            case 'TITEXTO':
                $sql = "SELECT * from inst_01_p03_txt";
                break;
            case 'DIRINSTI':
                $sql = "select zon.zonaId,zon.zonaNombre,dep.departamentoId,dep.departamento,mun.municipioId,mun.municipio,agen.agenteId,agen.agenteNombre,agen.agenteTipo,agen.agenteNumero,mon.modalidadNombre,agen.direccion,agen.telefono  from zonas zon
                inner join departamentos dep on dep.zonaId = zon.zonaId
                inner join municipios mun on mun.departamentoId = dep.departamentoId
                inner join agentes agen on agen.municipioId = mun.municipioId
                inner join modalidades mon on mon.modalidadId = agen.modalidadId order by zon.zonaNombre,dep.departamento,mun.municipio,agen.agenteNombre";
                break;
        }
        return $this->db->query($sql);
    }

    public function extraeInstru($instrumento, $depId) {
        /* Extrae todos los instrumentos aplicados para un departamento especifico */
        switch ($instrumento) {
            case '4':
                $sql = "select * from aplicainstrumento where `instrumentoId` = '$instrumento' and `departamentoId` = '$depId' order by `aplicaInstFechaCreo`";
                break;
            case '5':
                $sql = "select pai.* from participantes_por_paises parpai
                inner join paises pai on pai.paisId = parpai.paisId
                group by parpai.paisId order by pai.paisNombre";
                break;
            case '6':
                $sql = "select pro.* from participantes_por_programas parPro
                inner join programas pro on pro.programaId = parPro.programaId
                inner join participantes par on par.`participanteId` = parPro.`participanteId`
                inner join usuarios usr on usr.`participanteId` = par.`participanteId`
                where usr.`departamentoId` = '$depId'
                group by parPro.programaId order by pro.programaInstitucion,pro.programaNombre";
                break;
        }
        return $this->db->query($sql);
    }

// fin public function buscaUsuario($usuario,$contra,$opc){
}

//fin class
?>
